package com.promise.jokerdream.response.parser

import com.promise.jokerdream.response.phone.KnightArenaXmlResponse
import org.jsoup.Jsoup

/**
 * 侠士论剑XML解析器
 * 专门用于解析大乐斗侠士论剑相关的XML数据
 * 基于Jsoup实现
 */
class KnightArenaXmlParser: BaseXmlParser<KnightArenaXmlResponse>() {
    
    /**
     * 解析侠士论剑XML数据
     * @param xmlString XML字符串
     * @return 解析结果
     */
    fun parseKnightArenaXml(xmlString: String): XmlParseResult<KnightArenaXmlResponse> {
        return parseXml(xmlString)
    }
    
    override fun doParse(xmlString: String): KnightArenaXmlResponse {
        val doc = Jsoup.parse(xmlString)
        
        // 查找div#id下的p标签
        val pElement = doc.select("div#id p").first()
        
        if (pElement != null) {
            val html = pElement.html()
            
            // 直接使用<br/>进行分割，与其他解析器保持一致
            val parts = html.split(Regex("<br\\s*/?>"))
            
            // 取第一个和第二个<br/>中间的文案（索引1）
            if (parts.size >= 2) {
                val content = parts[1].trim()
                // 移除HTML标签，只保留文本
                val doc = Jsoup.parse(content)
                val extractedContent = doc.text().trim()
                return KnightArenaXmlResponse(
                    actionResult = extractedContent
                )
            }
        }
        
        // 如果没有找到匹配的内容，返回空字符串
        return KnightArenaXmlResponse(
            actionResult = ""
        )
    }
}